package com.hmdp;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;

@Slf4j
@SpringBootTest
public class RedissonTest3 {

//    @Resource
//    private RedissonClient redissonClient;
//    @Resource
//    private RedissonClient redissonClient2;
//    @Resource
//    private RedissonClient redissonClient3;
//
//    private RLock lock;
//
//    @BeforeEach
//    void setUp() {
//        RLock lock1 = redissonClient.getLock("order");
//        RLock lock2 = redissonClient2.getLock("order");
//        RLock lock3 = redissonClient3.getLock("order");
//
//        lock = redissonClient.getMultiLock(lock1,lock2,lock3);
//    }
//
//    @Test
//    void method1() throws InterruptedException {
//        boolean isLocked = lock.tryLock(1L, TimeUnit.SECONDS);
//        if (!isLocked) {
//            log.error("获取锁失败===>1");
//            return;
//        }
//        try {
//            log.error("获取锁成功===>1");
//            method2();
//        } finally {
//            log.error("准备释放锁===>1");
//            lock.unlock();
//        }
//    }
//
//    void method2() throws InterruptedException {
//        boolean isLocked = lock.tryLock();
//        if (!isLocked) {
//            log.error("获取锁失败===>2");
//            return;
//        }
//        try {
//            log.error("获取锁成功===>2");
//        } finally {
//            log.error("准备释放锁===>2");
//            lock.unlock();
//        }
//    }
}

